package net.vanchu.mortgagecalculator.mortgage.calculate;

import android.text.TextUtils;

import net.vanchu.mortgagecalculator.common.commonView.component.WritingOptionLayout;

/**
 * Created by grant on 16-12-29.
 */

public class LoanNumberInputValidator implements WritingOptionLayout.InputValidator {

    private String[] errorMsgContainer;

    public LoanNumberInputValidator(String[] errorMsgContainer) {
        this.errorMsgContainer = errorMsgContainer;
    }

    @Override
    public boolean valid(String input) {
        // 第一位不能为小数点 文档中没有提到这个需要提示用户
        if (input.length() == 1 && input.trim().equals(".")) {
            errorMsgContainer[0] = "第一位不能输入小数点";
            return false;
        }

        String[] inputs = input.split("\\.");

        // 纯整数
        if (inputs.length == 0) {
            if (input.length() > 4) {
                errorMsgContainer[0] = "最大输入四位数";
                return false;
            }
        }

        // 输入了小数点，还没有输入小数部分
        if (inputs.length == 1) {
            String integerPart = inputs[0];
            if (!TextUtils.isDigitsOnly(integerPart)) {
                return false;
            }
            if (integerPart.length() > 4) {
                errorMsgContainer[0] = "最大输入四位数";
                return false;
            }
        }

        // 输入了小数点，输入了小数部分
        if (inputs.length == 2) {
            String decimalPart = inputs[1];
            if (decimalPart.length() > 2) {
                errorMsgContainer[0] = "最大输入两位小数";
                return false;
            }
        }
        return true;
    }

    @Override
    public String[] getErrorMsgContainer() {
        return errorMsgContainer;
    }
}